The production of animated features involves the use of computer graphics techniques to produce a visually appealing image that can be used to convey an element of a story. One of the challenges in rendering images for use in animated features is balancing the desire for a visually appealing image of a character or object with the practical issues involved in allocating the computational resources required to produce the image in a feature film environment. Further, although the image need not be fully realistic in all cases, it is desirable that the artist producing the image be able to modify certain attributes of the rendered image, typically by adjusting input parameters of the graphics software, to obtain a visually appealing image that suits the purposes of the story line.
In computer animation graphics, a rendering program renders an image by producing pixels from a scene description. Scene description input files contain a three dimensional geometric description of all objects in the scene, as well as a virtual-camera description and light descriptions. In a simple rendering process, an element in the scene or image is modeled and then the software models how that element appears to a viewer (at a specified location and viewing angle) when light (typically multiple light sources) illuminates the element or causes the element to be shaded.
When rendering a very large group of objects in an animation scene, processing becomes complicated due to a strain on computational resources. For example, a crowd of tens of thousands of characters generates complex geometry for the renderer to process. An animator may separate the objects into different render layers that may each be rendered separately. However, the process of manually dividing the scene into separate render layers increases the amount of time necessary for the animator to generate a scene. The rendering process is further complicated when the objects or a camera position are moving in the scene. Rendering a dynamic scene requires additional user input for each frame to identify which objects may be rendered as one layer, thereby further increasing processing time and memory overload.
Therefore, what is needed is a method for rendering a group of objects in an animation scene that provides an efficient use of computational resources.